package strategy;


import java.util.Comparator;

class Strategy01 implements Comparator<Integer>{


    @Override
    public int compare(Integer o1, Integer o2) {
        return o1>o2 ?  1 : -1;
    }
}

class Strategy02 implements Comparator<Integer>{

    @Override
    public int compare(Integer o1, Integer o2) {
        return o1 < o2 ? 1 : -1;
    }
}

public class StrategyComparator {
    public static void main(String[] args) {
        Integer [] a = {
                1,3,4,5,6,0
        };

        Strategy01 strategy01 = new Strategy01();
        Strategy02 strategy02 = new Strategy02();

        SortComparator <Integer>sortComparator = new SortComparator<>();

        sortComparator.sort(a, strategy02);
        sortComparator.sort(a, (o1, o2)->{
            return o1>o2 ? 1 : -1;
        });

        for(Integer i : a){
            System.out.println(i);
        }
    }
}

// 函数式接口
@FunctionalInterface
interface Test{
    void t();
    // 如果不写默认方法lambda这里无法实现 所以1.8之后加入 兼容。 因为需要去实现 加了default不需要实现了。
    default void say(){}
    default void sqx(){}
}